package cn.lg.soar.system.account.service;

import cn.lg.soar.system.account.model.CodeLoginVo;

import javax.servlet.http.HttpServletRequest;

/**
 * @author luguoxiang
 * @date 2021/9/5
 * 开源项目：https://gitee.com/lgx1992/lg-soar 求star！请给我star！请帮我点个star！
 */
public interface ICodeLoginService {

    /**
     * 生成权限码
     * @param request
     * @param format 返回格式，非必填，参考：String.format(format, code);
     * @return
     */
    String generate(HttpServletRequest request, String format);

    default String generate(HttpServletRequest request) {
        return generate(request, null);
    }

    /**
     * 处理权限码（授权是否允许登录）
     * @param vo
     */
    void handle(CodeLoginVo vo);

    /**
     * 验证权限码
     * @param authCode
     * @return
     */
    String login(HttpServletRequest request, String authCode);

}
